# -*- coding:utf-8 -*-
import logging
import os
from utils import read_config

logs_path = os.path.join(read_config.data_path, 'logs')


class Logger:
    def __init__(self, loggername):
        # 创建一个logger
        self.logger = logging.getLogger(loggername)
        self.logger.setLevel(logging.DEBUG)
        # 创建一个handler，用于写入日志文件
        # 指定文件输出路径，注意logs是个文件夹，一定要加上/，不然会导致输出路径错误，把logs变成文件名的一部分了
        log_path = os.path.join(logs_path, loggername)
        if not os.path.exists(log_path):
            os.makedirs(log_path)
        logname = os.path.join(logs_path, loggername, 'out.log')  # 指定输出的日志文件名
        # 指定utf-8格式编码，避免输出的日志文本乱码 文件流
        fh = logging.FileHandler(logname, encoding='utf-8')
        fh.setLevel(logging.DEBUG)
        # 创建一个handler，用于将日志输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        # 定义handler的输出格式
        formatter1 = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
        formatter = logging.Formatter()
        fh.setFormatter(formatter)
        ch.setFormatter(formatter1)
        # 给logger添加handler
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

    # 定义一个函数，回调logger实例
    def get_log(self):
        return self.logger


if __name__ == '__main__':
    # Logger("hmk").get_log().debug("User %s is loging" % 'jeck')
    base_path = os.path.join(os.getcwd().split('StockMonitor')[0] + 'StockMonitor')
